﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GA;

namespace IndicadorDeMusicas
{
    public partial class Form1 : Form
    {
        public int Threshold { get; set; }
        public Form1()
        {
            InitializeComponent();
            cmbEstilo.Items.Add(Estilo.Axe);
            cmbEstilo.Items.Add(Estilo.Forro);
            cmbEstilo.Items.Add(Estilo.Funk);
            cmbEstilo.Items.Add(Estilo.HipHop);
            cmbEstilo.Items.Add(Estilo.Metal);
            cmbEstilo.Items.Add(Estilo.Pagode);
            cmbEstilo.Items.Add(Estilo.Pop);
            cmbEstilo.Items.Add(Estilo.ReB);
            cmbEstilo.Items.Add(Estilo.Rock);
            cmbEstilo.Items.Add(Estilo.Samba);
            cmbEstilo.Items.Add(Estilo.Sertanejo);
            cmbEstilo.Items.Add(Estilo.Swingueira);
            cmbNacionalidade.Items.Add(Nacionalidade.Asiática);
            cmbNacionalidade.Items.Add(Nacionalidade.Brasileira);
            cmbNacionalidade.Items.Add(Nacionalidade.Européia);
            cmbNacionalidade.Items.Add(Nacionalidade.NorteAmericana);
            cmbDecada.Items.Add(Decada.Anos50);
            cmbDecada.Items.Add(Decada.Anos60);
            cmbDecada.Items.Add(Decada.Anos70);
            cmbDecada.Items.Add(Decada.Anos80);
            cmbDecada.Items.Add(Decada.Anos90);
            cmbDecada.Items.Add(Decada.Anos00);
            cmbHit.Items.Add(Hit.Hit);
            cmbHit.Items.Add(Hit.NaoHit);
            cmbRitmo.Items.Add(Ritmo.Agitado);
            cmbRitmo.Items.Add(Ritmo.Calmo);
            cmbTendencia.Items.Add(Tendencia.Dark);
            cmbTendencia.Items.Add(Tendencia.Positive);
            Threshold = 120;
        }

        private void btnProcurarPlaylist_Click(object sender, EventArgs e)
        {
            Perfil selecionado = new Perfil();
            selecionado.Banda = txtBanda.Text;
            selecionado.Decada = (Decada)cmbDecada.SelectedItem;
            selecionado.Estilo = (Estilo)cmbEstilo.SelectedItem;
            selecionado.Hit = (Hit)cmbHit.SelectedItem;
            selecionado.Nacionalidade = (Nacionalidade)cmbNacionalidade.SelectedItem;
            selecionado.Ritmo = (Ritmo)cmbRitmo.SelectedItem;
            selecionado.Tendencia = (Tendencia)cmbTendencia.SelectedItem;
            
            CicloGA otimizacao = new CicloGA(selecionado, Threshold);
            List<Musica> resultado = otimizacao.iteracoesGA();
            Playlist lista = new Playlist(resultado, this);
            lista.Show();
        }
    }
}
